perm filename LARRY[1,JMC] blob sn#005251 filedate 1970-08-06 generic text, type T, neo UTF8
00005	                         STANFORD UNIVERSITY
00020	                     Stanford, California 94305
00035	
00040	                           August 6, 1970
00042	
00050	COMPUTER SCIENCE DEPARTMENT                    Telephone 415/321-2300
00065	                                                       extension 4971
00080	
00082	Dr. Lawrence G. Roberts
00084	Director of Information Processing Techniques
00086	ARPA
00088	Department of Defense
00090	Washington, D.C. 20301
00092	
00100	Dear Larry:
00200	
00300		As you may have heard, there is considerable enthusiasm  here
00400	at Stanford to build a high speed computer, called Super Foonly. This
00500	enthusiasm has several bases:
00600	
00700		1.  A conviction on the part of several ARPA users that while
00800	the PDP-10 has been fine up to now, a much faster processor will soon
00900	be required, and that D.E.C.'s current plans for the PDP-10I are just
01000	not  good  enough.   Gordon Bell and I and΀ the people at project MAC
01100	have independently come to that conclusion.
01200	
01300		2.  The computer capacity crisis is especially acute here  at
01400	Stanford,  because  the  main  picture processing programs associated
01500	with the Hand-Eye Project are just coming into production use.
01600	
01700		3.  There is a belief that certain operations that  occur  in
01800	compiling   (text   scan,  hash  table  entry  and  lookup),  picture
01900	processing  (edge  finding  and  other  local  operators),  and  list
02000	processing   (garbage   collection,   car-cdr  chain,  cons,  pattern
02100	matching, and hash addressing) could be much better carried out in  a
02200	machine that has some special facilities for them.
02300	
02400		4.    Last, but confessedly not least, some of our people, D.
02500	Poole, P.  Petit, E.  McGuire, and J. Gleason, are eager to  build  a
02600	suitable  computer, and Les and I have become convinced that they can
02700	really do it.
02800	
02900		5. The availability of 40 nanosecond  access  cache  memories
03000	from  Cogar  and other firms makes possible 10 times the speed of the
03100	PDP-10 without too  much  hair.   The  new  3  nanosecond  TTL  using
03200	Schottky  diodes  that Texas Instruments has announced will also help
03300	but is not crucial.  Simulation shows that cache memories  a  la  IBM
03400	360 model 85 really work.
03500	
03600		The Super Foonly project has the following features:
03700	
03800		1.      The  computer  will  obey  PDP-10  instructions, plus
03900	additional instructions built out of user accessible micro-code.   In
04000	fact,  the PDP-10 instructions themselves will be built from the same
04100	micro-code.
04200	
04300		2.  The design goal will be a machine 10 times as fast as the
04400	PDP-10 on most instruction mixes.
04500	
04600		3.   The  processor  will be build out of the newly announced
04700	Texas Instruments series of 3 nanosecond TTL, certain  available  MSI
04800	chips for arithmetic operations and accumulators, and a 40 nanosecond
04900	access Cogar memory for the cache, the micro-program memory, and  the
05000	paging memory.
05100	
05200		4.  The console of Super Foonly will be a small computer with
05300	a display, e.g. an IMLAC.  The console computer will be able to  read
05400	and  change  the  contents  of  the main computer directly. This will
05500	greatly aid the debugging and maintenance of the main computer.
05600	
05700		5.     It is proposed to complete the design this fall, order
05800	parts   about  January  1,  1971,  and  complete  the  debugging  and
05900	attachment to the Stanford system in the Spring and Summer of 1971.
06000	
06100		6.    A drawing program, several levels of simulation on  our
06200	present  system,  and programs for preparing wire lists, and checking
06300	the correspondence between  the  PC  board  layout  and  the  circuit
06400	drawings and checking loading rules will be used.
06500	
06600		7.  The  total  of purchase orders including, ICs, PC boards,
06700	automatic wiring, power supplies,  and  cabinetry  for  the  computer
06800	willl  be  slightly  less than $100K.  By using its equipment budget,
06900	the Stanford AI Project could complete the machine without a contract
07000	change since we already have a suitable console computer and adequate
07100	air conditioning.  This is not the most desirable procedure, however,
07200	since we really do need other hardware.
07300	
07400		8.  We would like your blessing to proceed with this project,
07500	and, if possible, the additional $100K needed for purchase orders.
07600	
07700		9.   Since there will undoubtedly be misgivings on your part,
07800	we propose the following checkpoints:
07900	
08000		a.  At  the  completion of the design, there will be complete
08100	drawings, and before any hardware is ordered, we propose  an  outside
08200	review  of the design, to be sure it will really work.   Gordon Bell,
08300	who has already spent a day with us, has agreed to do this.
08400	
08500		b.   Somewhat earlier, perhaps in the middle of September, we
08600	propose  an outside review of the user micro-programming features and
08700	the demonstration operations we have codeed in them, to be sure  that
08800	the machine really permits useful operations at a good speed level.
08900	
09000		Here  are  some  real  and imagined objections to the Project
09100	that I would like to try to refute:
09200	
09300		1. "Universities should not build computers." Pooh.
09400	
09500		2.   "Industry will produce a good  enough  computer  all  by
09600	itself."  D.E.C.  will not produce a fast enough computer soon enough
09700	without the prodding represented by this project.   If  there  is  no
09800	fast enough computer compatible with the PDP-10, by the time the ARPA
09900	projects need them, there will be vast programming costs involved  in
10000	a scramble to a variety of incompatible machines.
10100	
10200		3.  "The project is not very original, and it would be better
10300	and more interesting to design specialized computers for applications
10400	like  picture  processing  and  list  processing."  There are several
10500	answers to this:
10600	
10700			a.   It is better to have a  good  computer  than  an
10800	original  computer.   In  fact,  an  original computer serves only to
10900	discredit its good ideas if it is not  also  a  good  computer.    At
11000	present, this means the computer must have a good time sharing system
11100	with a full complement of languages  and  other  user  services.  The
11200	micro-programming features of Super Foonly will permit the testing of
11300	new ideas for fast picture and list processing by a large  population
11400	of  users whose interests are in the applications rather than just in
11500	system design.
11600	
11700		b.   The use of a mini-computer as a  console,  the  specific
11800	forms  of  interactive design automation planned, and the form of the
11900	user micro-coding are new.     In  particular,  the  micro-coding  is
12000	designed for supplementing an already good order code rather than for
12100	emulating obsolete machines.
12200	
12300		4.   "The Stanford group may not be able  to  carry  out  the
12400	project  in  anything  like  the  projected  time  or budget." I have
12500	confidence in the group, and we propose  an  outside  review  of  the
12600	design before any purchases are made.
12700	
12800		5.  "The project will divert the attention of the Stanford AI
12900	Project  from  its  main  work   in   artificial   intelligence   and
13000	mathematical theory of computation." The people who would be involved
13100	in Super Foonly have done system programming  (they  are  responsible
13200	for  some  of our time-sharing system and the FAIL assembler which is
13300	in fairly widespread use outside our project)  and  hardware  design.
13400	(They  interfaced  our  disk,  core memorry, TV cameras, displays and
13500	other devices).    At present, our hardware and software  work  quite
13600	well  but  we  are in a bind on compute capacity so the project makes
13700	sense as a continuation of the activities of our hardware and  system
13800	group.
13900	
14000		We  would like to meet with you and present our plans orally,
14100	and Gordon Bell has agreed to come to Washington with us.  We propose
14200	the week of August 24, since Gordon will be away until that time, and
14300	D.   Poole and friends need some more time to plan and to make firmer
14400	their estimates of time, performance and costs.  Besides ARPA people,
14500	we would propose that the meeting include Gordon  Bell,  Dave  Poole,
14600	and me, and possibly Les.
14700	
14800		Before proceeding much further we need your blessing.    This
14900	blessing  may,  of  course,  be  dependent  on  the  project  passing
15000	technical check points as determined by outside reviewers.
15100	
15200		Incidentally, the following have already been done:
15300	
15400		1.  The basic design of the three units of the processor (the
15500	cache box, the instruction preparation box, and  the  execution  box)
15600	has   been   carried   to   the  point  of  register  and  data  path
15700	specification.    Approximate counts of the number of  DIPs  for  the
15800	various  functions  have been made and conservative timings have been
15900	calculated.  This design has already undergone several iterations.
16000	
16100		2. An interpreter of PDP-10 instructions has been written and
16200	used  to determine the speed of a variety of PDP-10 programs run with
16300	various assumptions about the cache use algorithm, main memory speed,
16400	and  minor cycle of the machine.  The program has been tested on such
16500	programs as the LISP compiler, the LISP  interpreter,  compiled  LISP
16600	code, the SAIL compiler, and compiled SAIL code.  The worst case from
16700	the point of view of the percentage of cache  hits  which  determines
16800	the  speed  of  the  machine was the LISP compiler which got 94% hits
16900	with a 2K cache.
17000	
17100		3.   A drawing program has been written and demonstrated with
17200	part of the features we want.
17300	
17400		4.   Samples  of  the  circuitry  we  intend to use have been
17500	obtained and tested in variety of conditions of loading, wire length,
17600	noise and cross-talk conditions.  Much more of this is being done.
17700	
17800		5.  A  group  of AI project people are beginning to check out
17900	the suitability  of  the  proposed  micro-program  feature  for  list
18000	processing,  LEAP  operations,  picture  processing,  and  some other
18100	operations.
18200	
18300		6.   Various experts have been consulted and their ideas  and
18400	blessing solicited.
18500	
18600						Sincerely yours,
18700	
18800	
18900	
19000						John McCarthy
19100	
19200	P.S. Let  me  emphasize  that  the  ideas  in  the  machine  and  the
19300	initiative  for  starting  it  come from D. Poole and our other young
19400	hardware and software people.  Two years ago,  I  suppressed  Poole's
19500	proposal  to  build  a  computer, but this time we are confident that
19600	their proposal is the best way of meeting our computer needs and will
19700	make  a  definite  contribution  to the state of the art.  We hope to
19800	transfer this confidence to you.
19900	
20000	P.P.S.  In the last few days, a better simulation that gives for each
20100	instruction the time taken in the I and E boxes of  the  machine  has
20200	been  run.  The design "minimum" of ten times the speed of the PDP-10
20300	seems to be confirmed.